package com.yuwubao.uav.tool.service;

import com.yuwubao.framework.bean.JsonResult;
import com.yuwubao.framework.bean.PageData;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 *
 */
public interface UserService {



    void addZhuanfaIntegration(PageData pageData) throws Exception;

    void checkUserPublish(PageData pageData,String checkResult) throws Exception;
    void addUserPublish(PageData pageData) throws Exception;

    void deleteUserBrowsingHistoryType(PageData pageData) throws Exception;
    void updateUserBrowsingHistoryTypeName(PageData pageData) throws Exception;
    void updateUserBrowsingHistoryType(PageData pageData) throws Exception;
    void addUserBrowsingHistoryType(PageData pageData) throws Exception;

    int getAdviceEnrollCount(PageData pageData) throws Exception;
    void userAdviceEnroll(PageData pageData) throws Exception;

    List<PageData> listUserBrowsingTypeHistory(PageData pageData) throws Exception;

    List<PageData> listUserBrowsingHistory(PageData pageData) throws Exception;
    int listUserBrowsingHistoryCount(PageData pd) throws Exception;

    List<PageData> listUserPublishForAdmin(PageData pageData) throws Exception;
    int listUserPublishForAdminCount(PageData pd) throws Exception;

    List<PageData> listMyPublish(PageData pageData) throws Exception;
    int listMyPublishCount(PageData pd) throws Exception;

    List<PageData> listUserCollection(PageData pageData) throws Exception;
    int listUserCollectionCount(PageData pd) throws Exception;

    List<PageData> listUserIntegration(PageData pageData) throws Exception;
    int listUserIntegrationCount(PageData pd) throws Exception;
    int getUserIntegrationCount(PageData pd) throws Exception;

    List<PageData> listUserPublish(PageData pageData) throws Exception;
    int listUserPublishCount(PageData pd) throws Exception;

    PageData getUserBrowsingHistory(PageData pageData) throws Exception;
    void deleteUserBrowsingHistory(PageData pageData) throws Exception;

    boolean checkRoleIsUsing(PageData pageData) throws Exception;
    List<PageData> listUserPrivilege(PageData pageData) throws Exception;
    List<PageData> listFrontUserRole(PageData pd) throws Exception;
    void addPrivilegeToRole(PageData pageData) throws Exception;

    void deleteRole(PageData pageData) throws Exception;
    void updateRole(PageData pageData) throws Exception;
    void addRole(PageData pageData) throws Exception;
    List<PageData> listRole(PageData pageData) throws Exception;
    int listRoleCount(PageData pageData) throws Exception;
    List<PageData> listOrganization(PageData pageData) throws Exception;
    int listOrganizationCount(PageData pageData) throws Exception;

    void deletePrivilege(PageData pageData) throws Exception;
    void updatePrivilege(PageData pageData) throws Exception;
    void addPrivilege(PageData pageData) throws Exception;
    List<PageData> listPrivilege(PageData pageData) throws Exception;
    int listPrivilegeCount(PageData pageData) throws Exception;

    void updateBackendUser(PageData pageData) throws Exception;
    PageData login(PageData pageData) throws Exception;
    void disableOrEnableUser(PageData pageData) throws Exception;
    void deleteUser(PageData pageData) throws Exception;

    List<PageData> listFrontUser(PageData pageData) throws Exception;
    int listFrontUserCount(PageData pageData) throws Exception;

    List<PageData> listBackendUser(PageData pageData) throws Exception;
    int listBackendUserCount(PageData pageData) throws Exception;

    void addUser(PageData pageData) throws Exception;
    int findByUserName(String userId) throws Exception;
    int getUserByUserName(PageData pageData) throws Exception;
    int getUserByMail(PageData pageData) throws Exception;

    String getUserPwdById(PageData pageData) throws Exception;
    void changePwd(PageData pageData) throws Exception;

    JsonResult importUserList(MultipartFile fileName, HttpServletRequest request) throws Exception;

    List<PageData> listAddressListCompany() throws Exception;
    List<PageData> listAddressListDepartment(PageData pageData) throws Exception;
    List<PageData> listAddressList(PageData pageData) throws Exception;

    void sendMsg(PageData pageData) throws Exception;
    void deleteAddressList(PageData pageData) throws Exception;
    void deleteAddressListCompany(PageData pageData) throws Exception;
    void deleteAddressListDepartment(PageData pageData) throws Exception;

    void addUserCollection(PageData pageData) throws Exception;

}
